home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 December / MACPOWER-1997-12.ISO.7z / MACPOWER-1997-12.ISO / AMUG / PROGRAMMING / Raven 1.2 Examples.sit / Raven 1.2 Examples / Quill / Source / CustomClasses.h < prev    next >
Text File  |  1997-04-27  |  2KB  |  89 lines

  1. /*
  2.  *  File:       CustomClasses.h
  3.  *  Summary:       A class containing information about custom pane classes.
  4.  *  Written by: Jesse Jones
  5.  *
  6.  *  Copyright ゥ 1996-1997 Jesse Jones. 
  7.  *    For conditions of distribution and use, see copyright notice in ZTypes.h  
  8.  *
  9.  *  Change History (most recent first):    
  10.  *
  11.  *         <2>     4/26/97    JDJ        Added GetCreator.
  12.  *         <1>    10/14/96    JDJ        Created
  13.  */
  14.  
  15. #pragma once
  16.  
  17. #include <Functional.h>
  18. #include <String>
  19. #include <Utility.h>
  20.  
  21. #include <ZBroadcaster.h>
  22. #include <ZReanimator.h>
  23. #include <ZTypes.h>
  24.  
  25.  
  26. //-----------------------------------
  27. //    Forward References
  28. //
  29. template<class KEY, class VALUE, class COMPARE, class ALLOCATOR> class map;
  30.  
  31.  
  32. // ===================================================================================
  33. //    class CCustomClasses
  34. // ===================================================================================
  35. class CCustomClasses : public MBroadcaster<CCustomClasses*> {
  36.  
  37. //-----------------------------------
  38. //    Initialization/Destruction
  39. //
  40. public:
  41.                          ~CCustomClasses();
  42.     
  43.                           CCustomClasses();
  44.  
  45.             enum {kType = 'CusC'};
  46.  
  47. //-----------------------------------
  48. //    Types
  49. //
  50. public:
  51.     typedef map<string, string, less<string>, allocator<string> >    ClassTable;
  52.     typedef pair<const string, string>                                 ClassEntry;
  53.     
  54. //-----------------------------------
  55. // API
  56. //
  57. public:            
  58.     // ----- Getters -----
  59.             long         GetNumClasses() const;
  60.             
  61.             bool         HasClass(const string& derivedClass) const;
  62.             
  63.             string         GetBaseClass(const string& derivedClass) const;    
  64.             
  65.             const ClassTable* GetTable() const                            {return mTable;}    
  66.  
  67.     // ----- Setters -----
  68.             void         AddClass(const string& derivedClass, const string& baseClass);
  69.             
  70.             void         RemoveClass(const string& derivedClass);
  71.  
  72.       // ----- I/O -----
  73.             void         ReadResources();
  74.               
  75.               void         WriteResources(ResID id);
  76.               
  77. //-----------------------------------
  78. //    Internal API
  79. //
  80. protected:
  81.               CreatorProcPtr GetCreator(const string& className);
  82.  
  83. //-----------------------------------
  84. //    Member data
  85. //
  86. protected:
  87.     ClassTable*        mTable;
  88. };
  89.